/**  
* @author renbangjie renbangjie@126.com  
* @version V1.0  
*/
package com.ai.service.reviewed.service;

import java.util.List;
import java.util.Map;

import com.ai.common.core.service.IBaseService;
import com.ai.common.model.Pagination;
import com.ai.mmd.reviewed.dto.SbhzinfoDTO;
import com.ai.mmd.reviewed.dto.SbhzinfoExtDTO;
import com.ai.mmd.reviewed.dto.StatisticsDTO;
import com.ai.mmd.reviewed.dto.StatisticsHwlxDTO;
import com.ai.mmd.reviewed.vo.HotmapVO;
import com.ai.mmd.reviewed.vo.PreviewinfoVO;
import com.ai.mmd.reviewed.vo.SbhzinfoVO;
import com.ai.mmd.reviewed.vo.SbmxinfoExtVO;
import com.ai.mmd.reviewed.vo.SbmxinfoVO;
import com.ai.mmd.reviewed.vo.StatisticsHwlxVO;
import com.ai.mmd.reviewed.vo.StatisticsVO;
import com.ai.mmd.reviewed.vo.YhxxVO;
import com.ai.service.reviewed.model.SbhzinfoModel;

/**
* 
*	登陆信息的业务层接口
* 
* @author renbangjie renbangjie@126.com
*/
public interface ISbhzinfoService extends IBaseService<SbhzinfoModel> {

	
	/**
     * 详细信息的分页
     *
     * @param yhxxDTO
     * @return
     * @throws Exception
     */
    public Pagination<SbhzinfoVO> getListVO(SbhzinfoDTO sbhzinfoDTO) throws Exception;
    
    /**
	 * 查询货物运单号列表
	 * @param SbhzinfoDTO
	 * @return
	 * @throws Exception
	 */
	public List<Map<String, String>> getHwydhList(SbhzinfoDTO sbhzinfoDTO);
	
	/**
	 * 查询铁路货票号列表
	 * @param SbhzinfoDTO
	 * @return
	 * @throws Exception
	 */
	public List<Map<String, String>> getTlhphList(SbhzinfoDTO sbhzinfoDTO);
	
	/**
	 * 箱量统计
	 * @param SbhzinfoDTO
	 * @return
	 * @throws Exception
	 */
	public List<StatisticsVO> getXlStatistics(StatisticsDTO statisticsDTO);
	
	/**
     * 货物类型统计
     * @param StatisticsHwlxDTO
     * @return
     * @throws Exception
     */
    List<StatisticsHwlxVO> getHwlxStatistics(StatisticsHwlxDTO statisticsHwlxDTO)
            throws Exception;
    
    /**
     * 查询申报港口数据列表
     * @param SbhzinfoExtDTO
     * @return
     * @throws Exception
     */
    List<SbmxinfoExtVO> getsbgkList(SbhzinfoExtDTO sbhzinfoExtDTO)
            throws Exception;
    
    /**
     * 查询申报站点数据列表
     * @param SbhzinfoExtDTO
     * @return
     * @throws Exception
     */
    List<SbmxinfoExtVO> getsbzdList(SbhzinfoExtDTO sbhzinfoExtDTO)
            throws Exception;
    
    /**
     * 起点终点统计
     * @param StatisticsDTO
     * @return
     * @throws Exception
     */
	public List<StatisticsVO> getfromtoStatistics(StatisticsDTO statisticsDTO);
	
	/**
     * 根据汇总单号查询箱号明细
     * @param StatisticsDTO
     * @return
     * @throws Exception
     */
	public Map<String, Integer> getxhDetail(Map<String, Object> map);
	
	/**
     * 获得比对有质疑的明细总数
     * @param SbhzinfoDTO
     * @return
     * @throws Exception
     */
	public Integer getCompareWorngListCount(SbhzinfoDTO sbhzinfoDTO)throws Exception;
	
	/**
     * 更新对比有质疑的汇总和明细
     * @param SbhzinfoDTO
     * @return
     * @throws Exception
     */
	public void updatehzmx(List<SbmxinfoVO> list)throws Exception;
	
	/**
     * 更新无质疑的汇总和明细
     * @param List<SbmxinfoVO>
     * @return
     * @throws Exception
     */
	public void updaterighthzmx(SbhzinfoDTO sbhzinfoDTO)throws Exception;
	
	/**
     * 更新所有该季度的数据为通过
     * @param SbhzinfoDTO
     * @return
     * @throws Exception
     */
	public void crossAllHz(SbhzinfoDTO sbhzinfoDTO)throws Exception;
	
	/**
     * 首页统计总箱量和总金额
     * @param 
     * @return
     * @throws Exception
     */
	public List<SbhzinfoVO> getStatisticsForIndex(Map<Object, Integer> map) throws Exception;
	
	/**
     * 根据汇总单号批量更新明细状态
     * @param SbhzinfoModel
     * @return
     * @throws Exception
     */
	public void updateMxBatch(SbhzinfoModel sbhzinfoModel,Integer flag) throws Exception;
	
	/**
     * 获得该年度有申报记录的企业
     * @param SbhzinfoDTO
     * @return
     * @throws Exception
     */
	public List<YhxxVO> getCompanyList(SbhzinfoDTO sbhzinfoDTO)throws Exception;
	
	/**
     * 获得该年度有申报记录的企业
     * @param SbhzinfoDTO
     * @return
     * @throws Exception
     */
	public StatisticsVO getALLStatistics(SbhzinfoDTO sbhzinfoDTO)throws Exception;
	
	/**
     * 查询预览列表
     * @param SbhzinfoDTO
     * @return
     * @throws Exception
     */
	public PreviewinfoVO getPreviewList(SbhzinfoDTO sbhzinfoDTO)throws Exception;
	
	/**
     * 查询热力数据列表
     * @param SbhzinfoDTO
     * @return
     * @throws Exception
     */
	public List<HotmapVO> getHotmapList(SbhzinfoDTO sbhzinfoDTO)throws Exception;
	
	/**
     * 查询时间错误数据
     * @param SbhzinfoDTO
     * @return
     * @throws Exception
     */
	public List<SbmxinfoVO> getTimeErrorList(SbhzinfoDTO sbhzinfoDTO)throws Exception;
	
	/**
     * 更新时间错误列表
     * @param SbhzinfoDTO
     * @return
     * @throws Exception
     */
	public void updateWrongTimeList(List<SbmxinfoVO> mxlist)throws Exception;
}
